<?php
/* Tendremos que hacer un query para cada dirección MAC, de esta forma
podremos calcular las estadisticas para las plazas de forma individual
y las juntaremos calculando la media todas las plazas de parking*/
//montamos la consulta y la almacenamos en fila

/* Para el calculo de la OCUPACIÓN */

/*Para esta estadística nos interesa devolver una relación entre (hora,ocupacion) tendremos que ir hora por hora
realizando el query que nos devolverá la MAC y el número de veces que apareció ocupado, a partir de ahi calcularemos
la ocupación de ese sensor en esa hora. Entonces crearemos un array de arrays, en el que cada posicion del vector principal
contedrá una tupla formada por un timestamp de la hora concreta a analizar y el porcentaje de ocupación*/

/**
 *	ocupacionI nos devuelve la tasa de ocupación en periodo de tiempo concreto
 *	@param $hi indica la hora inicial en que se quiere consultar la tasa de ocupación, valor pasado por referencia
 *	@param $hf indica la hora hasta la que se va a consultar la ocupacion, valor pasado por referencia
 *	@param $factor valdrá 30*24 si calculamos la ocupación de un día, 30*24*7 si es la de una semana
 *	        y 30*24*$num_dias_mes para el calculo de la ocupación de un mes y nos permitira calcular la ocupacion
 *	@param $info contendrá el resultado de consultar la ocupación de la hora, valor pasado por referencia
*/
function ocupacionI(&$hi,&$hf,&$factor,&$info){
	global $rnombre;
    $formato='Y-m-d H:i:s';
    $hi_TS=strtotime($hi);
	$hf_TS= strtotime($hf);

    $sql="SELECT MAC,TIEMPO, COUNT(*) AS CUENTA FROM `Prueba` WHERE
		  TIEMPO>=TIMESTAMP('$hi') AND TIEMPO<TIMESTAMP('$hf') AND OCUPADO=1 GROUP BY MAC";
    //echo "<br>".$sql."</br>";
	$rnombre = mysql_query($sql) or die('Query failed: ' . mysql_error());
	while($fila = mysql_fetch_array($rnombre, MYSQL_ASSOC)){
		//echo (date($formato,$hi_TS));
		
        $fila['TIEMPO']= date($formato,$hi_TS);
		$fila['TIEMPO']= strtotime($fila['TIEMPO'])* 1000;
		$fila['TIEMPO']+= 60*60*1000;//para añadir una hora debido al JS!!!!!!!!!!
        
		$ratio_ocupacion= array("OCUPACION" => $fila['CUENTA']/$factor);
        //echo "<br>factor:".$factor."  CUENTA:  ".$fila['CUENTA']."</br>";
        //echo "<br>MAC:".$fila['MAC']."  Cuenta:".$fila['CUENTA']."</br>";
		//echo ($ratio_ocupacion['CUENTA']);
        
		$aux=array_merge($fila,$ratio_ocupacion);
        /*echo "<br>MAC:".$aux['MAC']."  Tiempo: ".$fila['TIEMPO']."  Ocupacion: ".$aux['OCUPACION']."</br>";*/
        $info[]=$aux;
	}
}

require("db_prowsn.php");
global $rnombre;
$datos=array();
$ocupacion=array();
$fecha_i=$_GET["fecha"]; 
$fechai_TS=strtotime($fecha_i);
$formato='Y-m-d H:i';
$fechaf_TS=0;
$opcion=$_GET["opt"];

switch ($opcion){
    case "dia":
        $factor=30;
        for ($i=0;$i<24;$i++){
            $fechaf_TS=$fechai_TS+60*60;
            $fecha_f=date($formato,$fechaf_TS);
            
            ocupacionI($fecha_i,$fecha_f,$factor,$datos);
            
            $fechai_TS=$fechaf_TS; //incrementamos una hora para consultar la siguiente
            $fecha_i=date($formato,$fechai_TS);//para indicar en la consulta la siguiente hora
        }
        break;
    case "semana":
        $factor=24*30;
        for ($i=0;$i<7;$i++){
            $fechaf_TS=$fechai_TS+24*60*60;
            $fecha_f=date($formato,$fechaf_TS);
            
            ocupacionI($fecha_i,$fecha_f,$factor,$datos);
            
            $fechai_TS=$fechaf_TS; //incrementamos una hora para consultar la siguiente
            $fecha_i=date($formato,$fechai_TS);//para indicar en la consulta la siguiente hora
        }
        break;

    case "mes":
        $num_dias=date('t',$fechai_TS);//para tomar el numero de días del mes
        $factor=24*30;
        for ($i=0;$i<$num_dias;$i++){
            $fechaf_TS=$fechai_TS+24*60*60;
            $fecha_f=date($formato,$fechaf_TS);
            
            ocupacionI($fecha_i,$fecha_f,$factor,$datos);
            
            $fechai_TS=$fechaf_TS; //incrementamos una hora para consultar la siguiente
            $fecha_i=date($formato,$fechai_TS);//para indicar en la consulta la siguiente hora
        }
        break;
}
$dim=count($datos);
$aux=array();
if ($_GET['global']==0)
    echo json_encode($datos);
else{
    for ($i=0;$i<$dim;$i+=5){
        $tserv_avg=$datos[$i]['OCUPACION']+$datos[$i+1]['OCUPACION']+$datos[$i+2]['OCUPACION']+
                   $datos[$i+3]['OCUPACION']+$datos[$i+4]['OCUPACION'];
        $tserv_avg/=5;
        $aux[]=array("FECHA"=>$datos[$i]['TIEMPO'],"OCUPACION"=>$tserv_avg);
    }
    /*for ($i=0;$i<$dim/5;$i++){
        echo "<p>Fecha:  ".$aux[$i]["FECHA"]."  Ocupacion:  ".$aux[$i]["OCUPACION"]."</p>";
    }*/
    echo json_encode($aux);
}

mysql_free_result($rnombre);
mysql_close($link);
?>